<?php
namespace app\api\controller;

use \tpfcore\Core;

/**
 * @title   小程序文章接口类
 * @description
 * @group   小程序接口
 * Class ProgramPosts
 * @package app\api\controller
 */
class ProgramPosts extends ApiBase
{
	/**
     * @title       获取文章列表
     * @description 栏目下的文章列表
     * @author      TPFrame
     * @url         /api/program_posts/getList/
     * @method POST
     * @param_send  name:api_version type:string require:1 default:"" other:格式x.x.x desc:版本号
     * @param_send  name:category_id type:integer require:1 default:0 other:栏目ID desc:栏目ID
     * @param_send  name:limit type:integer require:0 default:10 other:xxx desc:每页数据条数1-30之间
     * @param_send  name:page type:integer require:0 default:1 other:xxx desc:分页页码
     * @param_send  name:sort type:string require:0 default:"id&nbsp;asc" other:xxx&nbsp;asc/desc desc:排序方式
     */
	public function getList(){
		switch ($this->api_version) {
            case '1.0':
                $this->jump(Core::loadModel('Posts')->get_List($this->param));
                break;
            default:
                $this->jump([40048, '版本号错误']);
                break;
        }
	}

    /**
     * @title       获取文章列表(新)
     * @description 栏目下的文章列表，有子栏目就取第一个栏目下的文章，否则该栏目下的文章
     * @author      TPFrame
     * @url         /api/program_posts/getPosts/
     * @method POST
     * @param_send  name:api_version type:string require:1 default:"" other:格式x.x.x desc:版本号
     * @param_send  name:category_id type:integer require:1 default:0 other:栏目ID desc:栏目ID
     * @param_send  name:limit type:integer require:0 default:10 other:xxx desc:每页数据条数1-30之间
     * @param_send  name:page type:integer require:0 default:1 other:xxx desc:分页页码
     * @param_send  name:sort type:string require:0 default:"id&nbsp;asc" other:xxx&nbsp;asc/desc desc:排序方式
     * @param_send  name:has_body type:int require:0 default:"" other:0表示不取出，1表示取出 desc:是否同时取出文章内容
     */
    public function getPosts(){
        switch ($this->api_version) {
            case '1.0':
                $this->jump(Core::loadModel('Posts')->getPosts($this->param));
                break;
            default:
                $this->jump([40048, '版本号错误']);
                break;
        }
    }

	/**
     * @title 文章详情
     * @description 获取文章详情
     * @author TPFrame
     * @url  /api/program_posts/getDetail/
     * @method POST
     * @param_send name:api_version type:string require:1 default:空字符串"" other:格式x.x.x desc:版本号
     * @param_send name:id type:integer require:1 default:"" other:xx desc:数据ID
     * @param_send name:open_id type:string require:0 default:"" other:xx desc:开放平台openid
     */
	public function getDetail(){
		switch ($this->api_version) {
			case '1.0':
				$this->jump(Core::loadModel('Posts')->detail($this->param));
				break;
			default:
				$this->jump([40048, '版本号错误']);
				break;
		}
	}

    /**
     * @title 文章点赞
     * @description 文章点赞/取消点赞
     * @author TPFrame
     * @url  /api/program_posts/add_likes/
     * @method POST
     * @param_send name:api_version type:string require:1 default:空字符串"" other:格式x.x.x desc:版本号
     * @param_send name:posts_id type:integer require:1 default:"" other:xx desc:帖子ID
     * @param_send name:open_id type:string require:1 default:"" other:xx desc:开放平台openid
     * @param_send name:type type:integer require:1 default:"" other:xx desc:操作类型 1:点赞  2:浏览，这里只能传1
     */
    public function add_likes(){
        switch ($this->api_version) {
            case '1.0':
                $this->jump(Core::loadModel('Posts')->add_likes($this->param));
                break;
            default:
                $this->jump([40048, '版本号错误']);
                break;
        }
    }

    /**
     * @title 文章浏览（暂时没用）
     * @description 添加文章浏览量（一个用户只算一次）
     * @author TPFrame
     * @url  /api/program_posts/add_view/
     * @method POST
     * @param_send name:api_version type:string require:1 default:空字符串"" other:格式x.x.x desc:版本号
     * @param_send name:posts_id type:integer require:1 default:"" other:xx desc:帖子ID
     * @param_send name:open_id type:string require:1 default:"" other:xx desc:开放平台openid
     * @param_send name:type type:integer require:1 default:"" other:xx desc:操作类型 1:点赞  2:浏览，这里只能传2
     */
    public function add_view(){
        switch ($this->api_version) {
            case '1.0':
                $this->jump(Core::loadModel('Posts')->add_view($this->param));
                break;
            default:
                $this->jump([40048, '版本号错误']);
                break;
        }
    }


    /**
     * @title       内容搜索
     * @description 小程序数据搜索
     * @author      TPFrame
     * @url         /api/program_posts/search/
     * @method POST
     * @param_send  name:api_version type:string require:1 default:"" other:格式x.x.x desc:版本号
     * @param_send  name:keyword type:string require:1 default:'' other:xxx desc:关键字
     * @param_send  name:limit type:integer require:0 default:10 other:xxx desc:每页数据条数
     * @param_send  name:page type:integer require:0 default:1 other:xxx desc:分页页码
     */
    public function search(){
        switch ($this->api_version) {
            case '1.0':
                $this->jump(Core::loadModel('Posts')->search_data($this->param));
                break;
            default:
                $this->jump([40048, '版本号错误']);
                break;
        }
    }
}